package com.wicket.okrbff.web.contorller;

import cn.hutool.core.bean.BeanUtil;
import com.wicket.okrbff.biz.service.CrossTempIntegrateService;
import com.wicket.okrbff.biz.service.dto.req.*;
import com.wicket.okrbff.biz.service.dto.res.*;
import com.wicket.okrbff.common.ro.OkrResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import java.util.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.wicket.okrcalc.integration.FwCalcCrossTempIntegrateClient;
import com.wicket.okrcalc.integration.dto.QueryIntegrateThemeDetailComRespDto;
import com.wicket.okrcalc.integration.dto.QueryIntegrateThemeDetailComReqDto;
import com.wicket.okrapp.integration.FwAppCrossTempIntegrateClient;
import com.wicket.okrapp.integration.dto.AnalysisIntegrateThemeContInfoComRespDto;
import com.wicket.okrapp.integration.dto.AnalysisIntegrateThemeContInfoComReqDto;
import com.wicket.okrframework.integration.FwBaseInductionRecordClient;
import com.wicket.okrframework.integration.dto.QueryInductionRecordInfoDetailComRespDto;
import com.wicket.okrframework.integration.dto.QueryInductionRecordInfoDetailComReqDto;
import com.wicket.okrbff.common.exception.Assert;
import com.wicket.okrbff.common.util.CommonFunctionHelper;
import com.wicket.okrcalc.integration.dto.AddIntegrateThemeBusinessProcessRespDto;
import com.wicket.okrcalc.integration.dto.AddIntegrateThemeBusinessProcessReqDto;
import com.wicket.okrcalc.integration.dto.UpdateIntegrateThemeBusinessProcessRespDto;
import com.wicket.okrcalc.integration.dto.UpdateIntegrateThemeBusinessProcessReqDto;
import com.wicket.okrcalc.integration.dto.UpdateIntegrateThemeComRespDto;
import com.wicket.okrcalc.integration.dto.UpdateIntegrateThemeComReqDto;
import com.wicket.okrcalc.integration.dto.QueryFuzzyIntegrateThemeListComRespDto;
import com.wicket.okrcalc.integration.dto.QueryFuzzyIntegrateThemeListComReqDto;
import com.wicket.okrframework.integration.dto.BatchQueryInductionRecordListComRespDto;
import com.wicket.okrframework.integration.dto.BatchQueryInductionRecordListComReqDto;
import java.util.stream.Collectors;
import cn.hutool.core.collection.CollectionUtil;
import com.wicket.okrbff.biz.service.dto.common.BffIntegrateThemeDto;
import com.wicket.okrcalc.integration.dto.QueryCrossTempSingleDataDetailRespDto;
import com.wicket.okrcalc.integration.dto.QueryCrossTempSingleDataDetailReqDto;
import com.wicket.okrcalc.integration.dto.QueryCrossTempMultipleDatasListRespDto;
import com.wicket.okrcalc.integration.dto.QueryCrossTempMultipleDatasListReqDto;
import com.wicket.okrbff.biz.service.dto.common.BffTargetEvaluationCrossDataDto;
import com.wicket.okrcalc.integration.dto.BatchQueryCrossTempMultipleDatasRespDto;
import com.wicket.okrcalc.integration.dto.BatchQueryCrossTempMultipleDatasReqDto;
import com.wicket.okrcalc.integration.dto.QueryTargetEvaluationCrossDataListComRespDto;
import com.wicket.okrcalc.integration.dto.QueryTargetEvaluationCrossDataListComReqDto;
import com.wicket.okrcalc.integration.dto.ImplementCrossTempExtractAndIntegrateDatasComRespDto;
import com.wicket.okrcalc.integration.dto.ImplementCrossTempExtractAndIntegrateDatasComReqDto;
import com.wicket.okrcalc.integration.dto.AddThemeEvaluationCrossComRespDto;
import com.wicket.okrcalc.integration.dto.AddThemeEvaluationCrossComReqDto;
import com.wicket.okrcalc.integration.dto.UpdateThemeEvaluationCrossComRespDto;
import com.wicket.okrcalc.integration.dto.UpdateThemeEvaluationCrossComReqDto;
import com.wicket.okrcalc.integration.dto.QueryThemeEvaluationCrossListComRespDto;
import com.wicket.okrcalc.integration.dto.QueryThemeEvaluationCrossListComReqDto;
import com.wicket.okrbff.biz.service.dto.common.BffThemeEvaluationCrossDto;

/**
 * @author ：
 * @date ：
 *
 *
 * @version 1.0
 */
@Api(value = "CrossTempIntegrate", tags = { "CrossTempIntegrate" })
@RestController
// @RequestMapping("/oms/crossTempIntegrate/")
public class CrossTempIntegrateController {

  @Autowired
  CrossTempIntegrateService crossTempIntegrateService;
/**
   * B4查询目标跨模板整合主题详情(管理)
   * gen by moon at 8/21/2024, 12:27:50 PM
   */
    @PostMapping("/oms/mgt/crossTempIntegrate/queryIntegrateThemeDetail")
    @ApiOperation(value = "B4查询目标跨模板整合主题详情(管理)", response = OkrResult.class)
    public OkrResult<BffQueryIntegrateThemeDetailRespDto> queryIntegrateThemeDetail(@RequestBody(required=false) @Validated BffQueryIntegrateThemeDetailReqDto reqDTO){
        return OkrResult.success(crossTempIntegrateService.queryIntegrateThemeDetail(reqDTO));
    }
/**
   * B4新增目标跨模板整合主题(管理)
   * gen by moon at 8/21/2024, 12:50:09 PM
   */
    @PostMapping("/oms/mgt/crossTempIntegrate/addIntegrateTheme")
    @ApiOperation(value = "B4新增目标跨模板整合主题(管理)", response = OkrResult.class)
    public OkrResult<BffAddIntegrateThemeRespDto> addIntegrateTheme(@RequestBody(required=false) @Validated BffAddIntegrateThemeReqDto reqDTO){
        return OkrResult.success(crossTempIntegrateService.addIntegrateTheme(reqDTO));
    }
/**
   * B4修改目标跨模板整合主题(管理)
   * gen by moon at 8/21/2024, 12:50:11 PM
   */
    @PostMapping("/oms/mgt/crossTempIntegrate/updateIntegrateTheme")
    @ApiOperation(value = "B4修改目标跨模板整合主题(管理)", response = OkrResult.class)
    public OkrResult<BffUpdateIntegrateThemeRespDto> updateIntegrateTheme(@RequestBody(required=false) @Validated BffUpdateIntegrateThemeReqDto reqDTO){
        return OkrResult.success(crossTempIntegrateService.updateIntegrateTheme(reqDTO));
    }
/**
   * B4存档目标跨模板整合主题(管理)
   * gen by moon at 8/21/2024, 12:50:14 PM
   */
    @PostMapping("/oms/mgt/crossTempIntegrate/archiveIntegrateTheme")
    @ApiOperation(value = "B4存档目标跨模板整合主题(管理)", response = OkrResult.class)
    public OkrResult<BffArchiveIntegrateThemeRespDto> archiveIntegrateTheme(@RequestBody(required=false) @Validated BffArchiveIntegrateThemeReqDto reqDTO){
        return OkrResult.success(crossTempIntegrateService.archiveIntegrateTheme(reqDTO));
    }
/**
   * B4查询目标跨模板整合主题详情(边界)
   * gen by moon at 8/21/2024, 2:43:22 PM
   */
    @PostMapping("/oms/crossTempIntegrate/queryIntegrateThemeDetailBorder")
    @ApiOperation(value = "B4查询目标跨模板整合主题详情(边界)", response = OkrResult.class)
    public OkrResult<BffQueryIntegrateThemeDetailBorderRespDto> queryIntegrateThemeDetailBorder(@RequestBody(required=false) @Validated BffQueryIntegrateThemeDetailBorderReqDto reqDTO){
        return OkrResult.success(crossTempIntegrateService.queryIntegrateThemeDetailBorder(reqDTO));
    }
/**
   * B4查询目标跨模板整合主题列表(管理)
   * gen by moon at 8/21/2024, 2:43:33 PM
   */
    @PostMapping("/oms/mgt/crossTempIntegrate/queryIntegrateThemeList")
    @ApiOperation(value = "B4查询目标跨模板整合主题列表(管理)", response = OkrResult.class)
    public OkrResult<BffQueryIntegrateThemeListRespDto> queryIntegrateThemeList(@RequestBody(required=false) @Validated BffQueryIntegrateThemeListReqDto reqDTO){
        return OkrResult.success(crossTempIntegrateService.queryIntegrateThemeList(reqDTO));
    }
/**
   * B4查询目标跨模板整合主题列表(边界)
   * gen by moon at 8/21/2024, 2:43:41 PM
   */
    @PostMapping("/oms/crossTempIntegrate/queryIntegrateThemeListBorder")
    @ApiOperation(value = "B4查询目标跨模板整合主题列表(边界)", response = OkrResult.class)
    public OkrResult<BffQueryIntegrateThemeListBorderRespDto> queryIntegrateThemeListBorder(@RequestBody(required=false) @Validated BffQueryIntegrateThemeListBorderReqDto reqDTO){
        return OkrResult.success(crossTempIntegrateService.queryIntegrateThemeListBorder(reqDTO));
    }
/**
   * B4查询跨模板单数据点详请
   * gen by moon at 8/26/2024, 1:32:31 PM
   */
    @PostMapping("/oms/crossTempIntegrate/queryCrossTempSingleDataDetail")
    @ApiOperation(value = "B4查询跨模板单数据点详请", response = OkrResult.class)
    public OkrResult<BffQueryCrossTempSingleDataDetailRespDto> queryCrossTempSingleDataDetail(@RequestBody(required=false) @Validated BffQueryCrossTempSingleDataDetailReqDto reqDTO){
        return OkrResult.success(crossTempIntegrateService.queryCrossTempSingleDataDetail(reqDTO));
    }
/**
   * B4查询跨模板多数据点列表
   * gen by moon at 8/26/2024, 1:32:43 PM
   */
    @PostMapping("/oms/crossTempIntegrate/queryCrossTempMultipleDatasList")
    @ApiOperation(value = "B4查询跨模板多数据点列表", response = OkrResult.class)
    public OkrResult<BffQueryCrossTempMultipleDatasListRespDto> queryCrossTempMultipleDatasList(@RequestBody(required=false) @Validated BffQueryCrossTempMultipleDatasListReqDto reqDTO){
        return OkrResult.success(crossTempIntegrateService.queryCrossTempMultipleDatasList(reqDTO));
    }
/**
   * B4批量查询跨模板多数据点列表
   * gen by moon at 8/26/2024, 1:32:51 PM
   */
    @PostMapping("/oms/crossTempIntegrate/batchQueryCrossTempMultipleDatas")
    @ApiOperation(value = "B4批量查询跨模板多数据点列表", response = OkrResult.class)
    public OkrResult<BffBatchQueryCrossTempMultipleDatasRespDto> batchQueryCrossTempMultipleDatas(@RequestBody(required=false) @Validated BffBatchQueryCrossTempMultipleDatasReqDto reqDTO){
        return OkrResult.success(crossTempIntegrateService.batchQueryCrossTempMultipleDatas(reqDTO));
    }
/**
   * B4查询目标跨模板数据范围列表
   * gen by moon at 8/28/2024, 1:51:48 AM
   */
    @PostMapping("/oms/crossTempIntegrate/queryTargetEvaluationCrossDataList")
    @ApiOperation(value = "B4查询目标跨模板数据范围列表", response = OkrResult.class)
    public OkrResult<BffQueryTargetEvaluationCrossDataListRespDto> queryTargetEvaluationCrossDataList(@RequestBody(required=false) @Validated BffQueryTargetEvaluationCrossDataListReqDto reqDTO){
        return OkrResult.success(crossTempIntegrateService.queryTargetEvaluationCrossDataList(reqDTO));
    }
/**
   * B4执行跨模板提取并整合标准数据
   * gen by moon at 8/29/2024, 6:53:08 PM
   */
    @PostMapping("/oms/crossTempIntegrate/implementCrossTempExtractAndIntegrateDatas")
    @ApiOperation(value = "B4执行跨模板提取并整合标准数据", response = OkrResult.class)
    public OkrResult<BffImplementCrossTempExtractAndIntegrateDatasRespDto> implementCrossTempExtractAndIntegrateDatas(@RequestBody(required=false) @Validated BffImplementCrossTempExtractAndIntegrateDatasReqDto reqDTO){
        return OkrResult.success(crossTempIntegrateService.implementCrossTempExtractAndIntegrateDatas(reqDTO));
    }
/**
   * B4新增主题跨评价模板范围(管理)
   * gen by moon at 9/18/2024, 7:44:29 PM
   */
    @PostMapping("/oms/mgt/crossTempIntegrate/addThemeEvaluationCross")
    @ApiOperation(value = "B4新增主题跨评价模板范围(管理)", response = OkrResult.class)
    public OkrResult<BffAddThemeEvaluationCrossRespDto> addThemeEvaluationCross(@RequestBody(required=false) @Validated BffAddThemeEvaluationCrossReqDto reqDTO){
        return OkrResult.success(crossTempIntegrateService.addThemeEvaluationCross(reqDTO));
    }
/**
   * B4修改主题跨评价模板范围(管理)
   * gen by moon at 9/18/2024, 7:44:36 PM
   */
    @PostMapping("/oms/mgt/crossTempIntegrate/updateThemeEvaluationCross")
    @ApiOperation(value = "B4修改主题跨评价模板范围(管理)", response = OkrResult.class)
    public OkrResult<BffUpdateThemeEvaluationCrossRespDto> updateThemeEvaluationCross(@RequestBody(required=false) @Validated BffUpdateThemeEvaluationCrossReqDto reqDTO){
        return OkrResult.success(crossTempIntegrateService.updateThemeEvaluationCross(reqDTO));
    }
/**
   * B4查询主题跨评价模板范围列表(管理)
   * gen by moon at 9/18/2024, 7:44:48 PM
   */
    @PostMapping("/oms/mgt/crossTempIntegrate/queryThemeEvaluationCrossList")
    @ApiOperation(value = "B4查询主题跨评价模板范围列表(管理)", response = OkrResult.class)
    public OkrResult<BffQueryThemeEvaluationCrossListRespDto> queryThemeEvaluationCrossList(@RequestBody(required=false) @Validated BffQueryThemeEvaluationCrossListReqDto reqDTO){
        return OkrResult.success(crossTempIntegrateService.queryThemeEvaluationCrossList(reqDTO));
    }
}
